#include <iostream>

using namespace std;

class Base {
public :
   virtual void show();
};

class Derived : public virtual Base {
  private:
     void show();
};



class Derived2 : public Base {
};


void Derived::show() {
   cout << "Derived show()!" << endl;
}


/*
void Derived2::show() {
   cout << "Derived2 show()!" << endl;
}
*/

int main() {
  Derived d;
  Derived2 d2;
  // d.show(); //error
  Base* a=&d;
  a->show();
  a=&d2;
  a->show();
  return 0;
}
